Marking images of text with speckle patterns for theft deterrence

ABSTRACT

The present invention provides methods and apparatus for embedding an identifying pattern of visible speckles into the digitized image of each page of a document. A speckle is a cluster of black or white pixels. Speckles are printed as black speckles on the white paper, or conversely, as areas of missing black removed from the black text characters, called white speckles. The collective pattern of all embedded black and white speckles on a single document page is called a specklemark. A specklemark can survive contrast manipulations on photocopiers and binary rasterization done by fax scanning prior to data transmission. The random pattern of the black and white speckles visible in the digitized image of a document page can be detected automatically, and by systematically matching the detected pattern with those known to have been embedded into marked copies of a document page, a specific document copy can be identified. Methods for composing, embedding and detecting specklemarks are the subject of this patent.

FIELD OF THE INVENTION

This application relates to the fields of digitized imaging and its usefor document security and theft deterrence. It is more specificallyconcerned with the embedding of identifying marks, herein individuallycalled speckles and collectively a specklemark, into electronic copiesof a document prior to its being transmitted or printed, and thesubsequent detection or non-detection of those identifying marks indigitized images that are either in electronic form or a hard copy form,the latter having been re-digitized by scanning.

BACKGROUND OF THE INVENTION

It is a constant endeavor to find improved techniques for placingidentifying marks into high-value documents, such as scripts forproposed motion pictures or television programs, drafts of unpublishedbooks, etc., that are targets for theft or malicious appropriation. Theprotection that can be offered by these techniques is necessarilylimited. For example, if the thief has obtained a copy and chooses toretype the stolen document, there is little or no protection that can beoffered. However, retyping of a lengthy document is an expensive andtime consuming action. If the thief is less diligent and attempts tophotocopy, fax or otherwise electronically reproduce the stolendocument, a good degree of protection can be offered by embedding intoeach page of a document uniquely identifiable and cryptographicallyunpredictable markings.

The markings may be made unique to each copy of an original document, oradditionally, to each page of each copy. If a stolen copy of a documentis retrieved, the unique pattern can be detected by scanning theretrieved page or pages, spatially aligning them with the unmarkedoriginal page or pages, and systematically matching the detected patternof speckles with one of those known to have been embedded into markedcopies of the original document.

DEFINITION OF TERMINOLOGY

A digitized image of a document page, also called a page image, is anabstraction of a physical document page that can be stored in acomputer's memory. The digitized image may be prepared for viewing on anelectronic display or re-digitized by scanning a printed page. Thedigitized image is stored as at least one rectangular array of numbersin a computer's memory, with each cluster of numbers corresponding tothat image's (one or more) color planes.

Each array element corresponds to a very small spatial area of thephysical image and is called a picture element, or pixel. The numericvalue associated with each pixel for a monochrome image represents themagnitude of the average brightness of its single color (for example,black and white). A pixel's numeric value is represented by at least onebinary digit or bit.

For a color image, each pixel of the digitized image has associatedcomponent values, one for each of its at least one color plane,representing the magnitudes of average brightness of its at least onecolor component represented in its at least one color plane. If thecolor image has more than one color plane, the color components areassociated with spectrally dispersed primary colors that, when blended,represent a range of colors in the spectrum, and the values of the atleast two color components are the relative brightness of the at leasttwo primaries used to represent a particular color.

The process of converting a document page from the internal format of aword processor, such as Microsoft Word® or Lotus WordPro®, to that of adigitized image is called rasterization. The rasterization processcreates horizontal (or vertical) lines of pixels of a page of text. Whenclosely spaced rasterized lines are viewed on an electronic display orconverted to lines of dots of colored inks or toners and printed, thehuman visual system fuses the individual lines of pixels intorecognizable characters of text or other geometric figures.

If the digitized image has been converted from continuous tone pictureelements to halftone picture elements, the color component values of thehalftone picture elements will be referred to as ink-density values, andthe number of color planes in the halftoned representation may begreater than the number of color planes in the digitized image.

Thus, the digitized image rasterized for viewing or printing, the hardcopy printed from of the rasterized and halftoned image, and there-digitized scanned image of a printed page are all distinct, butrelated, representations of the same document page.

Whenever reference is made herein to color planes, it is understood toinclude any number of color planes used by a particular image'sdigitizing technique to define the pixel's color characteristics.

Whenever reference is made herein to a printed copy (also referred to asa hard copy), it is understood that each pixel has an associated inkdensity or ink-density value. Further, it is understood that anink-density values refer to any substance that is used to apply color topaper or other substrate material, be that substance ink, dye, toner orother. Further, ink-density values range from 0% to 100%, meaning fromno ink applied to the area of a pixel on paper up to total coverage ofthat area on paper.

SUMMARY OF THE INVENTION

As used herein, a document is composed of at least one page. Usingpresent technology, each document page is converted by rasterizationinto a digitized image ready for printing or viewing on a display deviceattached to a computer. When each document page is represented as animage, present methods of image watermarking, such as that described inU.S. Pat. No. 5,825,892, PROTECTING IMAGES WITH AN IMAGE WATERMARK,issued Oct. 20, 1998, (which is incorporated herein by reference in itsentirety and for all purposes) can be used to embed virtually invisiblebut identifiable watermarks as unique texture patterns into each imagerepresenting a page. Such image watermarks can survive being printed andthen being copied by most office copiers and remain detectable in thecopied page. However, in images that contain primarily text, embeddedwatermarks are vulnerable to decreased contrast adjustments onphotocopiers and are generally rendered useless and undetectable by thebinary-state rasterization used by fax machines.

In addition to the more common image watermarking just described,another identifying pattern of visible speckles can be embedded into theimage of each page. A speckle is a cluster of black or white pixels. Themethod of embedding speckles into a digitized image is herein referredto as speckling. The collective pattern of all embedded black and whitespeckles on a single page is herein called a constellation of speckles,and the constellation of speckles is called a specklemark. Each embeddedblack or white speckle, although visible, is very small, approaching theresolution limit of printers and fax scanners. They are printed as blackspeckles on the white or other colored paper, or conversely, as areas ofmissing black removed from the black text characters or other geometricfigures, called white speckles. The embedding of speckles appliesequally well to the printed form of a document page, to the digitizedimage of a page ready for viewing on an electronic display prior to itsbeing printed, or to a digitized image formed by scanning andre-digitizing a printed page.

A specklemark can survive contrast manipulations on photocopiers andbinary rasterization done by fax scanning prior to data transmission.The random pattern of the black and white speckles visible in thedigitized image of a document page can be detected automatically, and bysystematically matching the detected pattern with those known to havebeen embedded into marked copies of a document page, a specific documentcopy can be identified. Methods for composing, embedding and detectingspecklemarks are the subject of this patent.

A first aspect of the present invention provides a method of enhancingdocument security and detecting fraud, comprising: embedding informationinto an original document and subsequently determining the presence ofthe embedded information in a copy of the original document, theembedding step including: providing a digitized image having at leastone image plane, the at least one image plane being represented by animage array having brightness data for a plurality of pixels, each ofsaid pixels having at least one color component and a pixel position;computing a first set of candidate positions for embedding speckles intothe digitized image based on information to be embedded; computing asecond set of candidate positions for embedding ghost speckles into thedigitized image based on the information to be embedded; and embeddingthe speckles into the digitized image to create a composite image.

A second aspect of the present invention provides a method comprising:embedding information into at least one page of a document copy andsubsequently detecting whether said information had been embedded intoat least one page of a suspect document copy, said document copy beingin a rasterized format, herein called a digitized page image, saidinformation being embedded through steps of: providing the digitizedpage image having at least one image plane, each said image plane beingrepresented by an image array having brightness data for a plurality ofpixels, each of said pixels having at least one color component andhaving a pixel position; computing a first set of candidate positionsfor embedding black speckles into the page image based on saidinformation to be embedded; computing a second set of candidatepositions for embedding ghost speckles into the page image based on saidinformation to be embedded; and embedding black speckles into the pageimage at positions where they are not near the edges of the page image'stext.

A third aspect of the present invention provides a system for enhancingdocument security and detecting fraud, comprising: a system forembedding information into an original document and subsequentlydetermining the presence of the embedded information in a copy of theoriginal document; a system for computing a first set of candidatepositions for embedding speckles into a digitized image based oninformation to be embedded, and for computing a second set of candidatepositions for embedding ghost speckles into the digitized image based onthe information to be embedded, the digitized image having at least oneimage plane, the at least one image plane being represented by an imagearray having brightness data for a plurality of pixels, each of saidpixels having at least one color component and a pixel position; and asystem for embedding the speckles into the digitized image to create acomposite image.

A fourth aspect of the present invention provides program product storedon a computer useable medium for enhancing document security anddetecting fraud, the computer useable medium comprising program code forcausing a computer system to perform the following steps: embeddinginformation into an original document and subsequently determining thepresence of the embedded information in a copy of the original document;computing a first set of candidate positions for embedding speckles intoa digitized image based on information to be embedded, and for computinga second set of candidate positions for embedding ghost speckles intothe digitized image based on the information to be embedded, thedigitized image having at least one image plane, the at least one imageplane being represented by an image array having brightness data for aplurality of pixels, each of said pixels having at least one colorcomponent and a pixel position; and embedding the speckles into thedigitized image to create a composite image.

A fifth aspect of the present invention provides a method for enhancingdocument security and detecting fraud, comprising: providing a computerinfrastructure being operable to: embed information into an originaldocument and subsequently determining the presence of the embeddedinformation in a copy of the original document; compute a first set ofcandidate positions for embedding speckles into a digitized image basedon information to be embedded, and to compute a second set of candidatepositions for embedding ghost speckles into the digitized image based onthe information to be embedded, the digitized image having at least oneimage plane, the at least one image plane being represented by an imagearray having brightness data for a plurality of pixels, each of saidpixels having at least one color component and a pixel position; andembed the speckles into the digitized image to create a composite image.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other aspects, features, and advantages of the presentinvention will become apparent upon further consideration of thefollowing detailed description of the invention when read in conjunctionwith the drawing figures, in which:

FIG. 1 shows the Truth Table for the bitwise logical OR operation.

FIG. 2 shows the Truth Table for the bitwise logical AND operation.

FIG. 3 shows the Truth Table for the bitwise logical Exclusive-OR (XOR)operation.

FIG. 4 shows a block diagram of an example method for automaticallyembedding black speckles into the digitized image of a document page.

FIG. 5 shows a block diagram of an example method for automaticallyembedding white speckles into the digitized image of a document page.

FIG. 6 shows a block diagram of an example alternative manually-assistedmethod for embedding white speckles into the digitized image of adocument page.

FIG. 7 a and the continuing FIG. 7 b show a block diagram of an examplemethod for detecting embedded black speckles in the digitized image of adocument page.

FIG. 8 a and the continuing FIG. 8 b show a block diagram of an examplemethod for detecting embedded white speckles in the digitized image of adocument page.

FIG. 9 is a computer system that can be used for marking text

DETAILED DESCRIPTION OF THE INVENTION

The Pseudo-random Sequence Generator

A specklemark is created using a cryptographically secure sequence ofuniformly distributed pseudo-random binary bits (also called apseudo-random bitstring). A typical method of generating a securesequence requires three entities to exist. The first is a specifichashing algorithm that produces an irreversibly hashed bitstring from agiven arbitrary sequence of binary bits, herein also called a bitstring.The second is another bitstring, herein called the key, and the third isyet another bitstring herein called the seed. The key is intended to beprotected and not revealed where it might be obtained by a maliciousparty.

Initially, the seed and key are logically combined, generally byconcatenating one to the other to form a longer bitstring, and thecombined bitstring is hashed by the hashing algorithm to form a firstpseudo-random segment; the segment is itself a bitstring of knownbitlength. In a typical embodiment, the hashing-algorithm used is theSecure Hash Algorithm-Revised (SHA-1). It is documented in Menezes, A.J.; van Oorschot, P. C. and Vanstone, S. A.; Handbook of AppliedCryptography, CRC Press, 1996, which is incorporated herein by reverencein its entirety and for all purposes. SHA-1 reduces a bitstring, x, offinite bitlength into a 160-bit hash of x, herein called a pseudo-randombitstring segment, or segment.

A second segment is produced by using the first segment as its seed. Inthe preferred embodiment, a 64-bit sequence number, initially set tozero and subsequently incremented for each use, is concatenated toaugment the bitlength of the first segment, thus forming a 224-bitaugmented seed. The second segment has the same 160-bit length as thefirst. Each additional segment is created in a like manner, that is, byhashing the augmented preceding segment. This feedback process, wheresegment n is generated from segment (n−1), can produce an extremely longsequence of uniformly distributed binary bits (estimated to be in excessof 4×10³² bits for the preferred embodiment using the SHA-1 algorithm)before the sequence repeats itself. Note that all subsequent segmentsare closely related to and dependent upon the initial seed and thesecret key, and the entire sequence of segments can be reproduced at anyfuture time by recalling the key and initial seed.

A number of groups of bits of equal length are sequentially selectedfrom a segment bitstring. In the preferred embodiment, ten groups, each16 bits in length, are sequentially selected from a segment. The firstgroup is comprised of the leftmost sixteen bits of the bitstring segmentthat are extracted without rearranging their order. The second group iscomprised of the next leftmost sixteen bits, again extracted withoutrearranging their order, and so on until all ten groups are populatedwith sixteen sequential bits from the segment. In this manner, none ofthe bits of any of the ten groups coincides with any bit of anothergroup. Each group represents a 16-bit integer in the domain 0 to 65535.The selection process is repeated using sequential segments until adesired number of 16-bit groups is obtained.

Producing Randomly Located Speckles from the Bit Sequence

As noted above, uniformly sized groups of sequential binary bits, eachgroup 16 bits in length for the preferred embodiment, are taken ten at atime from the very long sequence of pseudo-random bits. The sequentialgroups are used two at a time, and after offset and scaling become thehorizontal and vertical coordinates of the upper left corners of black,white or “ghost” speckles that are to be embedded into the page of text.The horizontal and vertical coordinates of the upper left corner ofspeckles are called speckle positions. The significance of “ghost”speckles will be explained shortly.

Speckles can be any shape, but for convenience in the preferredembodiment are chosen to be a square of dimension m. If, for example,the pixel resolution is 200 pixels per inch and 200 lines per inch, thevalue of m might be 3 (a 0.015 inch square) for black and ghost specklesand 4 (a 0.02 inch square) for white speckles, and 100 black and ghostspeckles and 200 white speckles might be candidates for embedding intothe image of a each page.

Ghost speckles are speckles defined in white areas of an original pagethat are left white and are therefore expected to remain white. Theinclusion of ghost speckles acts as a credibility control duringsubsequent specklemark detection. Without this credibility control, abogus scanned suspect image that is completely black might produce apositive detection, with all expected black speckles being found; butall ghost speckles would also be found to be black, which is totallyunexpected. Thus, a credible detection of black speckles requires thatall, or nearly all, ghost speckles must remain white.

Pixels of white speckles that totally or partially overlap any textcharacter on the page replace the pixels of the text. This actionproduces small white notches or holes in the text that are useful insubsequent specklemark detection. In the preferred embodiment, however,pixels of black speckles that partially or totally overlap any textcharacter are not used and are discarded because speckle fragments mightbe ambiguously detectable in subsequent specklemark detection.

Embedding the Specklemark

The illustrative embodiment will use monochrome document pages thatthemselves contain no embedded images. The document pages will berepresented as rasterized images having one binary digit, or bit, perpixel. Those skilled in the art will recognize that the illustrativeembodiment using one bit per pixel is readily adaptable to images havingmore than one bit per pixel and, further, is adaptable to eithermonochrome or color images.

For illustration of the preferred embodiment, an 8.5 inch by 11 inchpage format will be used; a uniform half inch unprinted border willfurther restrict the printable area of the page to 7.5 inches by 10inches. Rasterization resolution values used for illustration will be200 lines per inch and 200 pixels per inch. Those skilled in the artwill also recognize that the dimensions and rasterization resolutionused for illustrating the preferred embodiment place no limitationswhatever on adaptation of the embodiment to other dimensions andrasterization resolutions.

Images of document pages that are to be printed are called originalimages. In the illustrative embodiment all original images are the samesize and will be processed one at a time in a like manner.

The preferred embodiment of the specklemark embedding process beginswith conversion of all original images into images that have one bitpixel values, if they are not already in that format. This allowsbitwise logical operations to be performed efficiently on groups ofpixel values. In the illustrative embodiment, a pixel value of one inthe original and final images (final images are those with a specklemarkembedded) is to mean a black pixel, and a pixel value of zero is to meana white pixel. (Note, however, that for various temporary images createdin the embedding or detection processes, with such images discardedafter their subsequent use, the meaning of the binary pixel value iscontext dependent and may be reversed). In the following discussion,pixels having a black pixel value will be called black pixels, andpixels having a white pixel value will be called white pixels.

Three bitwise logical operators, OR, AND, and XOR, (the Truth Tables forwhich are shown in FIGS. 1, 2, and 3, respectively) will be used tocombine the binary pixel values of one image with the binary pixelvalues of another images, all of which images have the same size.

Additionally, the processes of pixel dilation and pixel erosion will beapplied. An image to be dilated or eroded is called a subject image. Theimage produced by the dilation process is called the dilated image, andthe image produced by the erosion process is called an eroded image.

A dilated image is composed by initially setting all of its pixels to bewhite pixels. The dilated image is completed by copying each black pixelin a subject image into an identical location in the dilated image,called a target location. But in the process of copying, the black pixelis enlarged to be a square of black pixels, to be centered at the targetlocation in the dilated image, and all pixels in the dilated image thatlie within the square are made black pixels. If the dimension of theenlarging square is an even number, it can not be centered at the targetlocation. In that instance, the enlarging square is centered as nearlyas possible, with an even number of pixels to the left side and top ofthe target location, and an odd number of pixels to the right side andbottom.

An eroded image is composed by initially setting all of its pixels to beblack pixels. The eroded image is completed by copying each white pixelin the subject image to an identical location in the eroded image, alsocalled a target location. But in the process of copying, the white pixelis enlarged to be a square of white pixels, to be centered at the targetlocation in the eroded image, and all pixels in the eroded image thatlie within the square are made white pixels. If the dimension ofenlarging square is an even number, it cannot be centered at the targetlocation. In that instance, the enlarging square is centered as nearlyas possible, with an odd number of pixels to the left side and top ofthe target location, and an even number of pixels to the bottom andright side. Note that the process of erosion is identical to the processof dilation, except that black and white pixels are interchanged, butthe approximate centering of enlarged squares of pixels with evennumbered dimensions is counter-symmetric.

Creating Random Locations for Black and “Ghost” Speckles

The process of creating random locations for black and ghost specklesthat are to be embedded uses a secure pseudo-random sequence generator,as documented above. The process is begun by selecting two bitstringscalled the key and the seed. Both bitstrings are retained for referenceat a future time should specklemark detection in a suspect page beattempted. The key is retained in a secure manner and not publiclydivulged.

Each repeated iteration of the secure pseudo-random sequence generatorproduces ten 16-bit groups of bits representing ten integers, eachhaving the range 0 to 65535. The ten integers are separated into fivepairs, each pair comprised of a horizontal integer a vertical integer.The horizontal integer of the pair is converted by scaling and offset torepresent the horizontal pixel coordinate, and the vertical integer ofthe pair is converted by scaling and offset to represent the verticalpixel coordinate of the upper left corner of the a candidate black orghost speckle.

In the illustrative embodiment, the black or ghost speckle is chosen tobe a square of dimension three. Also, for the example pixel resolution,each horizontal integer is converted by scaling and offset into ahorizontal pixel coordinate that lies in the range 100 to 1596, and eachvertical integer is converted, by scaling and offset, into a verticalpixel coordinate which lies in the range 100 to 2096, thereby insuringthat every square black or ghost speckle lies within or touching aboundary of the example 7.5 inch by 10 inch printable area. Eachhorizontal pixel coordinate and its associated vertical pixel coordinateconstitute a pixel coordinate pair. This process is repeated until aspecified number of pixel coordinate pairs is obtained. In theillustrative embodiment, the specified number is 100 pixel coordinatepairs.

The 100 pixel coordinate pairs represent the positions of 100 randomlypositioned speckles, of type either black or ghost, that are to beembedded into the image of a document page. However, before the specklesare embedded, they are tested for their proximity one to another, and ifany black or ghost speckle would overlap or lay less than a specifieddistance in any direction (herein called a proximity value) from anotherspeckle, it is discarded. Thus, the proximity testing process may leadto a reduced number of pixel coordinate pairs. In the illustrativeembodiment, the specified proximity value is 0.5 inches (100 pixelpositions). A side effect of this particular specified proximity testmeans that absolutely no more than 300 black and ghost speckles can beembedded into the 7.5 inch by 10 inch example printable area.

The reduced number of pixel coordinate pairs is the number that could beembedded into an all white image, and all coordinate pairs are placedinto a list. However, only those pixel coordinate pairs having aneven-numbered index in the list will be used for embedding blackspeckles. Those remaining in the list that have odd-numbered indexes,although fully qualified for use, will be retained for use as ghostspeckles, and will only be used in the specklemark detection process tobe described later.

The Black Speckle Collision Detection Process

A further reduction in the number of pixel coordinate pairs selected forblack speckle embedding may occur, in images that contain text, duringthe process of collision detection. A collision occurs when blackspeckles overlay text, either fully or partially, that is to be printedon the page. Black speckles that either fully or partially overlay textare discarded.

To begin the preferred embodiment of the black speckle collisiondetection process, the black speckles that are candidates to be embeddedare first enlarged and then embedded into another image that initiallyhas all white pixels and which is the same size as an original image (inthe example, 8.5 inches by 11 inches); the image so formed is called thefirst candidate speckle image. On embedding, the black speckles areenlarged to allow for a boundary between the speckles of the desiredsize and text that is in an original image. This precludes a blackspeckle from abutting text. In the illustrative embodiment, the desired3×3-square speckle size is enlarged to be a 7×7-square speckle. By thismeans, a two pixel boundary is established around the desired 3×3-squareblack speckle.

The first candidate speckle image is embedded into a selected originalimage using a logical-OR operation combining the pixel values of thefirst candidate speckle image with the pixel values of the originalimage, and thus forming a first temporary image. Black speckles that donot overlay any text, and any fragments of black speckles that partiallyoverlay text are determined by using a logical EXCLUSIVE-OR operationcombining the pixel values of the same original image with the pixelvalues of the first temporary image, forming a second temporary image.

Black speckle fragments are removed, and the remaining black specklesare resized to their desired final size by the application of pixelerosion followed by pixel dilation. In the illustrative embodiment, eachblack speckle embedded in the second temporary image will be a7×7-square of black pixels, 49 pixels in all, and each black specklefragment will contain fewer than 49 black pixels in a 7×7-square.Erosion is applied to pixels in the second temporary image to form afirst eroded image. The erosion applied is a 7:1 erosion, meaning thatthe size of every white pixel in the second temporary image is replacedby a 7×7-square of white pixels as it is copied to the first erodedimage, as described above. This action erodes each 7×7-square of blackpixels to one black pixel by removing three pixels from the left side,right side, top and bottom of the 7×7-square, and any cluster of blackpixels not containing a full 7×7-square of black pixels is set entirelyto white. This results in every black speckle fragment being setentirely to white, and effectively removed.

The remaining embedded black speckles (each now reduced to a singleblack pixel) are restored to their desired size by dilating the firsteroded image to form a first dilated image. This is done in theillustrative embodiment by a 1:3 dilation operation that copies eachblack pixel in the first eroded image into the initialized first dilatedimage while enlarging that black pixel to be a 3×3-square of pixels, asdescribed above. Notice that the size of all remaining pixels issimultaneously restored to the desired 3×3 square of black pixels in thefirst dilated image.

All that is left is to combine the pixels of first dilated image withpixels of the original image, using a logical-OR operation, to create anearly-final image. A nearly-final image has these properties: 1) allremaining black speckles lay at least two pixels away from any blackpixel in the original image, 2) all remaining black speckles are3×3-square clusters of black pixels, and 3) no black speckles thatoverlay or partially overlay black pixels in the original image remain.

Black Speckle Embedding Process Summary (Preferred Embodiment)

Referring to FIG. 4, the embedding of black speckles into an originalimage begins with the creation of a cryptographically secure sequence ofuniformly distributed pseudo-random binary bits called a bitstring(using the SHA-1 based method described previously). Bitstring creationbegins with the selections of two other bitstrings, the first called thekey and the second the seed (401). The sequence is produced 160 bits ata time, and each 160-bit bitstring is called a segment. An entiresequence of segments can be reproduced at any future time by recallingthe key and seed. Therefore, the seed and key are retained inanticipation of future specklemark detection (403).

Initially, the seed and key are logically combined by concatenation toform a first bitstring to be hashed into a 160-bit first segment (405).

Ten 16-bit integers are sequentially selected from the 160-bit bitstringproduced by the hashing process; the integers, used two at a time, andafter offset and scaling, become the horizontal and vertical coordinatesof the upper left corners of black and ghost speckles that are to beembedded into the original image (407).

If a specified number of coordinate pairs has not been produced (409),another seed is created by using the segment just produced, concatenatedto a 64-bit sequence number initially set to zero and subsequentlyincremented for each use, as a 224-bit augmented seed (411), and thataugmented seed is hashed to produce another 160-bit segment. Eachadditional segment produced in this manner has the same 160-bit lengthas the first. Additional segments are created by hashing the augmentedpreceding segment until the specified number of coordinate pairs hasbeen produced.

Each pixel coordinate pair represents the position of a randomly placedspeckle, of type either black or ghost, that are to be embedded into theimage of a document page. However, before the speckles are embedded,they are tested for proximity one to another, and if any black or ghostspeckle would overlap or lay less than a specified distance in anydirection from another speckle, it is discarded (413). In most cases,this will reduce the remaining number of coordinate pairs.

The reduced number of pixel coordinate pairs is the number that could beembedded into an all white image, and all of the remaining coordinatepairs are placed into a list. However, only those pixel coordinate pairshaving an even-numbered index in the list will be used for embeddingblack speckles. Those remaining in the list that have odd-numberedindexes, although fully qualified for use, will be retained as ghostspeckles to be used only in the specklemark detection process (415).

The black speckles that are candidates to be embedded are first enlargedand then embedded into another image that initially has all white pixelsand which is the same size as an original image (417); the image soformed is called the first candidate speckle image. On embedding, theblack speckles are enlarged to allow for a boundary between the specklesof the desired size and text that is in an original image.

The first candidate speckle image is embedded into an original imageusing a logical-OR operation, combining the pixel values of the firstcandidate speckle image with the pixel values of the original image, andthus forming Image #1 (417).

Black speckles that do not overlay any text, and any fragments of blackspeckles that partially overlay text are determined by using alogical-XOR operation to combine the pixel values of the same originalimage with the pixel values of the Image #1, forming Image #2 (419).

Black speckle fragments are removed and the remaining black speckles areresized to their desired final size by the application of pixel erosionfollowed by pixel dilation, forming Image #3 (421).

Using a logical-OR operation, pixels values of Image #3 are combinedwith pixel values of the original image to create the nearly-final image(423). The nearly-final image will become the final image after whitespeckles are embedded.

Creating Random Locations of White Speckles

The process of creating random locations for white speckles that are tobe embedded is largely the same as the process for creating black andghost speckles. The process uses the same secure pseudo-random sequencegenerator and, in the preferred embodiment, used the same key and seed.However, in the preferred embodiment, additional uniformly distributed16-bit integers are taken ten at a time from additional 160-bitbitstring segments, as necessary, with the segments lying in sequencebeyond those used for the black and ghost speckles and obtained by usingadditional iterations of the method described before. Each pair ofintegers is, in turn, converted by scaling and offset into anotherhorizontal pixel coordinate and a vertical pixel coordinate thus forminganother pixel coordinate pair, as before. This process is repeated untila specified number of pixel coordinate pairs is obtained. In theillustrative embodiment, the specified number is 200 pixel coordinatepairs.

A larger number (200 for white speckles as opposed to 100 for black andghost speckles) of potential white speckles is used because the numberof black pixels in text documents is relatively small. Usually, blackpixels are less than 10% of the total number of pixels in a text image,and they are placed in relatively thin arrangements. Therefore, a largernumber of randomly placed white speckles will be discarded because theydo not lie within or overlap black areas of the page. No white specklesmay be embedded by this method into some pages having text of a smallfont size.

The 200 pixel coordinate pairs represent the positions of 200 randomlyplaced white speckles that are to be embedded into black areas withinthe image of a document page. However, before the speckled are embedded,they are tested for their proximity one to another, as before with blackand ghost speckles, and if any speckle would overlap or lay less than aspecified proximity in any direction from another speckle, it isdiscarded. Thus, the proximity testing process may lead to a reducednumber of pixel coordinate pairs. As before in the illustrativeembodiment, the specified proximity value is 0.5 inches (100 pixelpositions).

The number of remaining pixel coordinate pairs is the number that couldbe embedded into an all black image. A significant further reduction inthe number of pixel coordinate pairs selected for speckle embedding isexpected to occur during the process of collision detection, that is, bydetecting where speckles overlay text, either fully or nearly so, thatis to be printed on the page. White speckles that do not fully, ornearly so, overlay text will be discarded.

It will be apparent to those skilled in the art that the coordinatepairs for black and ghost speckles, after collision detection, aremutually exclusive from those for white speckles.

The White Speckle Collision Detection Process

The white speckles that are candidates to be embedded are inverted toblack and then embedded into another image that initially has all whitepixels and which is the same size as an original image; the image soformed is called the second candidate speckle image. In the illustrativeembodiment, a 4×4-square desired white speckle size is used.

The second candidate speckle image is embedded into the same originalimage using a logical-AND operation combining the pixel values of thesecond candidate speckle image with pixel values of the original image,thus forming a third temporary image. Speckles that overlay text, andany fragments of speckles that partially overlay text, are evident asblack pixels in the third temporary image.

Speckle fragments that are too small to be detected, as a practicalmatter, are removed, and the remaining speckles are left in theiroriginal size by the application of pixel erosion followed by pixeldilation. In the illustrative embodiment, each speckle embedded in thethird temporary image will be a 4×4-square of black pixels, 16 pixels inall, and each speckle fragment will contain fewer than 16 black pixelsin a 4×4-square. Erosion is applied to pixels in the third temporaryimage to form a second eroded image. The erosion applied is 3:1, meaningthat the size of every white pixel in the third temporary image isreplaced by a 3×3-square of white pixels as it is copied to the seconderoded image. This action erodes each 4×4-square of black pixels to a2×2-square of black pixels by removing one pixel from the left side,right side, top and bottom of the 4×4-square. Note that any whitespeckle fragment cluster not containing a 2×2-square containing at leastthree black pixels is set entirely to white. In this way specklefragments are set entirely to white if they are judged to be too smallto be reliably detected. The remaining embedded speckles and fragmentsare restored to their desired size by a 1:3 dilation of the seconderoded image to form a second dilated image.

All that is left is to combine the pixels of second dilated image withpixels of the nearly-final image, using a logical-XOR operation, tocreate a final image. The final image of the illustrative/embodiment hasthe following properties: 1) all remaining black speckles lay at leasttwo pixels away from any black pixel in the original image, 2) allremaining black speckles are 3×3-square clusters of black pixels, and 3)all black speckles that overlay or partially overlay black pixels in theoriginal image have been removed, and 4) all remaining white speckles,or fragments of white speckles, lie within the black areas of theoriginal image and all have at least a 2×2 embedded sub-squarecontaining at least three white pixels.

White Speckle Embedding Process Summary (Preferred Embodiment)

Referring to FIG. 5, the process for white speckle embedding isremarkably similar to that for black speckle embedding. The processbegins with the continued generation of cryptographically securesegments of uniformly distributed pseudo-random binary bits from whereit left off for black speckle embedding. Further segment generationcontinues use of the same key (501). The initial augmented seed forcontinued segment generation is composed by incrementing andconcatenating the previously used 64-bit binary counter to the lastsegment used for black speckle embedding (505). In this manner thecontinuing sequence of segments can be reproduced at any future time byrecalling the initial key and seed, and further, integers extracted fromcontinuing segments will be distinct from those used for black speckleembedding. Thus black and white speckle coordinate pairs will notcoincide.

Ten 16-bit integers are sequentially selected from the 160-bit bitstringproduced by the hashing process; the integers, used two at a time, andafter offset and scaling, become the positions of white speckles thatare to be embedded into the original image (507).

If a specified number of coordinate pairs has not been produced (509),another augmented seed is created by using the previous segment,concatenated to a 64-bit sequence number incremented before each use(511), and that augmented seed is hashed to produce another 160-bitsegment. Each additional segment is created by hashing the augmentedpreceding segment, until the specified number of coordinate pairs hasbeen produced.

Each pixel coordinate pair represents the position of a randomly placedwhite speckle that is to be embedded into the image of a document page.However, before the speckles are embedded, they are tested for proximityone to another, and if any white speckle would overlap or lay less thana specified distance in any direction from another white speckle, it isdiscarded (513).

The number of remaining pixel coordinate pairs is the number that couldbe embedded into an all black image, and all of the remaining coordinatepairs are placed into a list.

The white speckles that are candidates to be embedded are inverted tohave black pixels and then embedded into another image that initiallyhas all white pixels and which is the same size as an original image(517); the image so formed is called the second candidate speckle image.

The second candidate speckle image is embedded into an original imageusing a logical-OR operation, combining the pixel values of the secondcandidate speckle image with the pixel values of the original image, andthus forming Image #4 (517). Inverted-white speckles that do not overlayany text, and any fragments of inverted-white speckles that partiallyoverlay text are determined by using a logical XOR operation to combinethe, pixel values of the same original image with the pixel values ofthe Image #4, forming Image #5 (519).

Inverted-white speckle fragments are removed by the application of pixelerosion followed by pixel dilation, forming Image #6 (521).

Using a logical-XOR operation, pixels values of Image #6 are combinedwith pixel values of the nearly-final image (which has previouslyembedded black speckles) to create the final image (523).

Alternatively Creating Locations of White Speckles with ManualAssistance

The process of creating white speckles can be manually assisted. To dothis, a copy of the original image is brought into an image editor, suchas Adobe Photoshop®. Small black areas of the text are manually removedby visually isolating areas of interest and changing their pixel valuesfrom black to white, thus creating a manually altered image. In thepreferred embodiment, the manually altered areas are rectangles. Bymaking the altered areas rectangles, the automated processes alreadydescribed can be used to qualify the areas as being sufficiently largeto be detectable. Logically combining pixels values of the manuallyaltered image with pixels values of the original image using alogical-XOR operation produces another candidate speckle image, calledthe fourth candidate speckle image.

As with the automatically created candidate white speckles, a furtherreduction in the number of pixel coordinate pairs for speckle embeddingis expected to occur during the process of collision detection, and asbefore, by detecting where speckles that overlay text, either fully ornearly so. White speckles that do not fully, or nearly so, overlay textwill be discarded.

The use and purpose of the third candidate speckle image is identical tothe previously defined and used second candidate speckle image.

Speckle fragments in the third candidate speckle image that are toosmall to be detected, as a practical matter, are removed, and theremaining speckles are left in their original size by the application ofpixel erosion followed by pixel dilation. In the illustrativeembodiment, each white speckle to be embedded must be at least as largeas a 4×4-square of pixels, but each speckle fragment may contain fewerthan 16 pixels in a 4×4-square.

Applying erosion and dilation, as described before, creates a thirddilated image in which all speckles equal to or larger than a 4×4-squareare retained (and appear as clusters of black pixels), but any specklefragment cluster not containing a 2×2-square having at least three blackpixels is set entirely to white. In this way speckle fragments are setentirely to white if they are judged to be too small to be reliablydetected. All that is left is to combine the pixels of third dilatedimage with pixels of the nearly-final image as before, using alogical-XOR operation, to create a final image. The final image of theillustrative embodiment has the following properties: 1) all remainingblack speckles lay at least two pixels away from any black pixel in theoriginal image, 2) all remaining black speckles are 3×3-square clustersof black pixels, 3) all black speckles that overlay or partially overlayblack pixels in the original image have been removed, and 4) allremaining white speckles, or fragments of white speckles, lie within theblack areas of the original image and all have at least a 2×2 embeddedsub-square containing at least three white pixels.

By searching the third dilated image, equivalent pixel coordinate pairsof the positions of the manually embedded white speckles can becataloged. This catalog of pixel coordinate pairs, along with the sizesof the manually embedded pixels must be retained with the original imagefor use during subsequent white speckle detection, since it can not bereproduced reliably. Equivalently, the third dilated image can beretained with the original image instead.

Manually Assisted White Speckle Embedding Summary

The manually assisted alternative process for white speckle embedding isidentical in many aspects to the fully automatic process discussedpreviously. Referring to FIG. 6, the manually assisted process beginswith alteration of a copy of an original image using an image editor.Alteration consists of the removal of small rectangles of black pixelsfrom the original image copy (617). This alteration results in thecreation of small white holes or notches in the text or other geometricpatterns in the image. The manually altered image is called Image #7.

Pixel values of Image #7 are combined with pixel values of the sameoriginal image, using a logical XOR operation, to produce Image #8(619). Image #8 has pixel values that are all white except for themanually removed areas, which appear as areas of black pixels.

Manually created white speckle are subjected to the same fragmentdeletion process as was applied to the automatically created whitespeckles. Speckle fragments and speckles judged too small to bedetectable are removed by the application of pixel erosion followed bypixel dilation, forming Image #9 (621).

Using a logical-XOR operation, pixels values of Image #9 are combinedwith pixel values of the nearly-final image (which has previouslyembedded black speckles) to create the final image including thespecklemark. (623).

Note that a similar manually assisted process can be defined forembedding black speckles, but it is not recommended as a preferredembodiment.

The process of speckle embedding is repeated for each original image ofa page in the document. Variations of the method are possible. Forinstance, each original image can have the same speckle patternembedded, or each can have a uniquely different speckle pattern embeddedthat was produced using the same key but a different seed. The numberand size of speckles can be varied from page to page, and/or fromdocument copy to document copy. Other variations will be apparent tothose skilled in the art that are within the scope and intent of thepresent invention.

Detecting the Specklemark

Specklemark detection is begun by scanning a suspect page that isbelieved to have an embedded specklemark, thus forming a digitizedimage, unless the suspect page already exists as a digitized image. Ineither case, the image is called the suspect image. In the illustrativeembodiment, the suspect image is a monochrome image having 8-bit pixelvalues. In preparation for detection of a particular specklemark in thesuspect image, the corresponding original image of the page is eitherrecalled or regenerated. Additionally, the retained key and at least oneexpected seed which could be expected to be found in the suspect imageare recalled.

An aligned suspect image is formed by geometrically aligning the suspectimage with its corresponding original image using methods described inU.S. Pat. No. 6,571,021 B1, May 27, 2003, RECOVERING AN INVISIBLEDIGITAL IMAGE FROM A DISTORTED IMAGE REPLICA, which is included hereinby reference in its entirety and for all purposes. In the preferredembodiment, pixels values of the aligned suspect image are convertedfrom 8-bit values to 1-bit values. In the illustrative embodiment, theconversion is done by rudimentary thresholding, that is, if an 8-bitpixel value is larger than 128, its corresponding 1-bit pixel value isset to 0 (a white pixel), otherwise, its corresponding 1-bit pixel valueis set to 1 (a black pixel). It should be understood that other knowntechnologies for alignment could be employed under the presentinvention.

In significant parts, the methods used in preparation for detection of aspecklemark in the aligned suspect image are similar or identical tothose methods used for specklemark embedding.

Black Speckle Detection

The process of creating random locations for speckles that are expectedto be found in the aligned suspect image must use the same securepseudo-random sequence generator as used for embedding. The required keyand at least one of several seeds used to mark individual copies of theoriginal document are recalled, as are the number of candidate black andwhite speckles that were candidates for embedding, and the distancechosen for proximity discarding.

For the key and the selected seed, the number of pixel coordinate pairsthat represent the positions of randomly placed speckles (either blackor ghost) are generated again. The method of generation is and must beidentical to that described previously for speckle embedding. As was thecase for the illustrated embodiment of embedding, 100 black and ghostcandidate coordinate pairs are generated for detection.

Also as described previously for speckle embedding, the specklescoordinate pairs are tested for their proximity one to another, and ifany speckle would overlap or lay less than a specified distance in anydirection from another speckle, it is discarded. The reduced number ofqualified coordinate pairs is placed in a list, as before.

For black and ghost pixels, the reduced number of pixel coordinate pairsis the number that could be embedded into an all white image. All of thereduced number of pixel coordinate pairs in the list will be used forspeckle detection, as opposed to using only those pixel coordinate pairshaving an even-numbered index in the list for speckle embedding.

As in the specklemark embedding process, a further reduction in thenumber of black and ghost pixel coordinate pairs may occur in imagesthat contain text during the process of collision detection.

In the specklemark detection process, as in the specklemark embeddingprocess, all candidate speckles are first enlarged and then embeddedinto another image that initially has all white pixels and which is thesame size as an original image; the image so formed for speckledetection is called the fourth candidate speckle image. On embedding,the all speckles are enlarged to allow a boundary between the specklesof the desired size and text that is in an original image. As before inthe illustrative embodiment, the 3×3-square desired speckle size isenlarged to be a 7×7-square speckle. By this means, a two pixel boundaryis established around the desired 3×3-square black speckle.

The fourth candidate speckle image is embedded into the recalledoriginal image using a logical-OR operation, thus forming a fourthtemporary image. Speckles that do not overlay any text, and anyfragments of speckles that partially overlay speckles are determined byusing a logical XOR operation combining the pixel values of the originalimage and the pixel values of the fourth temporary image, forming afifth temporary image.

Speckle fragments are removed, and the remaining speckles are resized totheir desired final size by the application of pixel erosion followed bypixel dilation of the fifth temporary image. The erosion and dilationprocess leads to formation of another image, called the black detectorimage. Notice that all non-colliding speckles are restored to be squaresof black pixels in the black detector image, similar to the firstdilated image. But unlike the first dilated image, it is desirable toenlarge the speckles in the black detector image. In the illustrativeembodiment, they are enlarged to be 5×5-squares instead of 3×3-squaresto allow a small measure of margin. The margin is warranted since theblack detector image is to be used as a mask when combined with thealigned suspect image, which may be imperfectly aligned with theoriginal image.

The black detector image contains non-colliding speckles that resultfrom using all of the reduced number of pixel coordinate pairs, asopposed to the smaller number of non-colliding speckles resulting fromusing only those pixel coordinate pairs having an even-numbered index,as used for black speckle embedding.

The pixel coordinate pairs in the list that have odd-numbered indexesresult in “ghost” speckles that serve as a credibility check for speckledetection. Since the ghost speckles were never embedded, and since allghost speckles that collide with text were removed, the detectionprocess should find only white at those speckle locations. Without thiscredibility check, a bogus image having all black pixels substituted forthe original image would give a strong, but false, specklemarkdetection, because all black speckles expected would be found. But theincluded ghost speckles, supposed to be white, would also show as blackand statistically disqualify the false detection.

At this juncture, the process of detection of a specklemark divergesfrom the process of embedding a specklemark. A list of the coordinatepairs of surviving speckles (called the surviving speckles-list) isdetermined from a pixel by pixel search of the black detector image andrecording the upper-left coordinate pairs of every speckle found. Byreferencing the list of remaining pixel coordinate pairs as it existedbefore collision detection (called the qualified-speckles list), thecoordinate pairs of each surviving speckle can be placed into one of twocategories. A coordinate pair in the surviving-speckles list that is thesame as a coordinate pair in qualified-speckles list having aneven-numbered index in the qualified-speckles list is placed into the“Black-Speckle-Expected” category, and all other coordinate pairs insurviving-speckles list are placed into the “Ghost-Speckle-Expected”category.

Finally, pixel values of the black detector image are combined withpixel values of the aligned suspect image using a logical-AND operationto create a black detection image. A pixel by pixel search of the blackdetection image reveals all black pixels that lie in both the alignedsuspect image and the black detector image. The coordinates of thosepixels are tested against the categorized surviving pixel coordinatepairs to see if they are “related to” a “Ghost-Speckle-Expected” or a“Black-Speckle-Expected” coordinate pair. A count of“Black-Speckles-Found”, initially set to zero, is incremented if aspeckle is related a Black-Speckle-Expected, and a count of“Corrupted-Ghost-Speckles-Found”, also initially set to zero, isincremented if a speckle is related a Ghost-Speckle-Expected,

The term “related to” as used herein means that detected black pixelsare within a small distance from the surviving coordinate pair. Sincethe aligned suspect image is probably imperfectly aligned with theoriginal image, a small misalignment tolerance is warranted. Note thatan allowable misalignment tolerance is limited by the dilation used inthe black detector image; in that image, dilated speckles are 5×5squares of pixels for the illustrative embodiment.

A perfect detection will find all expected black speckles and no ghostspeckles that are not white. Testing of each found speckle is astatistical event, and finding an expected speckle of the correct color,black or white, is a true event. Finding an expected ghost speckle ofthe incorrect color is a false event. A less than perfect detection,where not all expected black speckles are found and/or some ghostspeckles are found to be black, are statistical events that are combinedto determine the probability of detection of a specific specklemark. Ifa statistically significant number of black speckles found in thealigned suspect image match those in the black detector image, and if astatistically significant number of ghost speckles in the black detectorimage remain white in the aligned suspect image, then the jointprobability of detection of a specklemark is mathematicallydeterminable, and asymptotically approaches either 1 (detection) or 0(no detection).

Black Speckle Detection Summary (Preferred Embodiment)

Referring to FIG. 7 a, the detection of black speckles in a suspectimage begins with the recreation of a cryptographically secure bitstringof uniformly distributed pseudo-random binary bits. The recreation isbegun by recalling the key known to have been used for embedding thespecklemark in the suspect image, and several seeds, each seed used tomark one of several copies of the original image. Select one of theseeds (701). Specklemark detection will be repeated using one seed at atime until a specklemark is unequivocally detected, or until no untriedseeds remain; the latter being a failure to detect an expectedspecklemark.

Additionally, the original image that corresponds to the suspect imageis recreated (or recalled if it were saved as an image), and thespecified number of coordinate pairs for black and white specklecandidates are recalled (703).

The key and the selected seed are combined by concatenation to form afirst bitstring (705) to be hashed into a first 160-bit segment.

Ten 16-bit integers are selected in sequence from the 160-bit bitstringproduced by the hashing process. The integers, used two at a time, andafter offset and scaling, become the positions of candidate black and“ghost” speckles to be embedded into the black detector image (707).

If the specified number of coordinate pairs has not been produced (709),an augmented seed is created by using the previous segment concatenatedto a 64-bit sequence number initially set to zero and subsequentlyincremented for each use (711). Each augmented seed is hashed to produceanother 160-bit segment. Each additional segment produced in this mannerhas the same 160-bit length as the first. Additional segments arecreated in this manner until the specified number of coordinate pairshas been produced.

Each pixel coordinate pair represents the position of a randomly placedspeckle, of type either black or ghost, that is expected to be found inthe suspect image. However, before the speckle coordinates are used tocreate a black speckle detector, they are tested for proximity one toanother, and if any black or ghost speckle would overlap or lay lessthan a specified distance in any direction from another speckle, it isdiscarded (713).

The remaining pixel coordinate pairs represent the corners of specklesthat could be embedded into an all white image, and all of the remainingcoordinate pairs are placed into a list. All pixel coordinate pairs inthe list will be used for embedding black speckles in a black speckledetector. (715).

All speckles, of both black and ghost types, that are to be embeddedinto the detector are first enlarged and then embedded into anotherimage that initially has all white pixels (717); the image so formed iscalled the fourth candidate speckle image. On embedding, the black andghost speckles are enlarged to allow tolerance of an imperfectly alignedsuspect image.

The fourth candidate speckle image is embedded into an original imageusing a logical-OR operation, combining the pixel values of the fourthcandidate speckle image with the pixel values of the original image, andthus forming Image #11 (717). Black and ghost speckles that do notoverlay any text, and any fragments of black and ghost speckles thatpartially overlay text are determined by using a logical-XOR operationto combine pixel values of the original image with the pixel values ofthe Image #11, forming Image #12 (719).

Black and ghost speckle fragments are removed from Image #12 and theremaining black and ghost speckles are resized to their desired finalsize by the application of pixel erosion followed by pixel dilation,forming the black speckle detector image (721).

Proceeding on to FIG. 7 b, a list of the coordinate pairs of survivingspeckles (non-colliding speckles, either black or ghost) is determinedfrom a pixel by pixel search of the black speckle detector image; theupper-left coordinate pairs of every speckle found is recorded in asurviving speckles list (725). By referencing the list of remainingpixel coordinate pairs as it existed before collision detection, (as in715) the coordinate pairs of surviving speckles can be placed into twocategories. The coordinate pair of a surviving speckle that is the sameas a coordinate pair in the remaining coordinate pairs list, and thathas an even-numbered index in the remaining coordinate pairs list, isplaced into the “Black-Speckle-Expected” category; all other coordinatepairs of surviving speckles are placed into the “Ghost-Speckle-Expected”category (727).

The suspect image is scanned and re-digitized, if necessary, to form animage having 8-bit pixel values. The scanned suspect image is thengeometrically aligned with the original image, and, after alignment, itspixel values are converted from 8-bit to 1-bit values (729).

Finally, pixels of the black detector image are combined with pixels ofthe aligned suspect image using a logical-AND operation to create ablack detection image (731). A pixel by pixel search of the blackdetection image reveals all black pixels that lie in both the alignedsuspect image and the black detector image (733). The coordinate pairsof those pixels are tested against the categorized surviving pixelcoordinate pairs to see if they are “related to” a“Ghost-Speckle-Expected” or a “Black-Speckle-Expected” coordinate pair;counts of the two categories of pixel coordinate pairs are made (735).Based on the counts of the two categories, an initial probability ofspecklemark detection is made (737), which will be revised once whitespeckles are detected and included.

White Speckle Detection

The process for detecting white speckles also requires reconstruction ofthe pattern of white speckles in the specklemark, much the same way asthe detection of black speckles required reconstruction of the patternof black speckles. However the reconstruction for the pattern of whitespeckles is more nearly the same as that used for their embeddingbecause, in the preferred embodiment, there are no equivalent ghostspeckles that apply to white speckles.

If white speckles were manually embedded into a copy of the originalimage, the set-aside catalog of equivalent pixel coordinate pairs of thepositions of the manually embedded white speckles, and their embeddedsizes, are recalled. Together they are used to create an imageequivalent in form and function to the white detector image.Equivalently, if the entire dilated image used for white speckleembedding was set-aside with the original image, it can be used withminor alteration as the white detector image. The alteration shrinks thesize of embedded speckles using the erosion process to tolerate slightlyimperfect alignment of the aligned suspect image.

Otherwise, the process of creating random locations for white specklesexpected in the suspect image uses the same secure pseudo-randomsequence generator and, in the preferred embodiment, uses the same keyand selected seed as was used for black speckle detection.

The same specified number of 200 pixel coordinate pairs is used forwhite speckle detection as for white speckle embedding in theillustrative embodiment. All remaining process steps of the detectionprocess are identical to steps of the embedding process up to creationof the dilated image (which here is the white detector image). Specklesin the white detector image are shrunk as they are restored in thedilation process, rather than enlarged as they were for the blackdetector image. The reasoning is the same, however, since shrinking thespeckles in the white detector image equivalently provides a toleranceof slight imperfection in alignment of the aligned suspect image.

The equivalent dilated image is called the white detector image for thedetection process. Speckles that overlay text, and any sufficientlylarge fragments of speckles that partially overlay text, are evident asblack pixels in the white detector image. All remaining speckles, orfragments of speckles, have at least a 2×2 embedded sub-squarecontaining at least three black pixels in the white detector image.

At this juncture, the process of detection of white speckles divergesfrom the process of embedding white speckles. A list of the coordinatepairs of surviving white speckles (non-colliding speckles) is determinedby a pixel by pixel search of the white detector image while recordingthe upper-left coordinate pairs of every inverted-white speckle found.

Finally, pixels of the aligned suspect image are inverted, black towhite and vice versa) to form a sixth temporary image. Pixels of thewhite detector image are combined with pixels of the sixth temporaryimage using a logical-AND operation, creating the white detection image.A pixel by pixel search of the white detection image reveals anyblack-pixels. Black pixels “related to” surviving white specklecoordinate pairs represent successful detection of white speckles.Counts of white speckles detected are used to statistically helpdetermine the probability of detection of a specific specklemark.

White Speckle Detection Summary (Preferred Embodiment)

Referring to FIG. 8 a, the detection of white speckles in a suspectimage begins with the continuation of a cryptographically securebitstring of uniformly distributed pseudo-random binary bits that wasused for black speckle detection. The continuation uses the same key asused for black speckle detection. In addition, the same original imagethat corresponds to the suspect image, and the specified number ofcoordinate pairs for white speckle candidates, previously recalled, areused [see FIG. 7 a: (703)].

The first augmented seed is created by using the last segment producedfor black speckle detection, concatenated to a 64-bit sequence numberthat was initially set to zero and has been subsequently incremented foreach use, as a 224-bit augmented seed (805). The first augmented seed isconcatenated to the key, and that combined bitstring is hashed toproduce another 160-bit segment (807). Using a continuation of thepseudo-random binary bitstring essentially assures that white specklecoordinate pairs are very unlikely to be the same as black specklecoordinate pairs.

As before, ten 16-bit integers are selected from the 160-bit bitstringproduced by the hashing process; the integers, used two at a time andafter offset and scaling, become the positions of speckles that are tobe embedded into the white detector image (807).

If the specified number of coordinate pairs has not yet been produced(809), another augmented seed is created by using the segment justproduced, concatenated to an incremented 64-bit sequence number (811),and that augmented seed is hashed to produce the next 160-bit segment.

Each pixel coordinate pair represents the position of a randomly placedwhite speckle that is expected to be found in the suspect image.However, before the speckle coordinates are used to create a whitespeckle detector, they are tested for proximity one to another, and ifany white speckle would overlap or lay less than a specified distance inany direction from another speckle, it is discarded (813).

The remaining pixel coordinate pairs are those that could be embeddedinto an all black image, and all of the remaining coordinate pairs areplaced into a list. All pixel coordinate pairs in the list will be usedfor embedding black (inverted-white) speckles into a white speckledetector. (815).

All pixels of all white speckles that are to be embedded into thedetector are inverted, white to black and vice versa; the invertedspeckle is then embedded into another image that initially has all whitepixels (817); the image so formed is called the fifth candidate speckleimage.

The fifth candidate speckle image is embedded into an original imageusing a logical-AND operation, combining the pixel values of the fifthcandidate speckle image with the pixel values of the original image, andthus forming Image #21 (817). Inverted-white speckles that do overlayany text, and any fragments of inverted-white speckles that partiallyoverlay text are evident in Image #21.

Inverted-white speckle fragments not sufficiently large are removed fromImage #21 and the remaining inverted-white speckles are resized to theirdesired final size by the application of pixel erosion followed by pixeldilation, forming the white speckle detector image (821).

Proceeding on to FIG. 8 b, a count of surviving speckles is determinedfrom a pixel by pixel search of the white speckle detector image;speckles in this category are called “White-Speckles-Expected” (825).

Finally, the pixels of the aligned suspect image are inverted, (black towhite and vice versa) to form Image #23, and pixel values of the whitedetector image are combined with pixel values of Image #23 using alogical-AND operation to create a white detection image (831).

A pixel by pixel search of the white detection image reveals all nonwhite speckles that lie within the white detector image, and these arecounted as a category of “White-Speckle-Found” (833). Based on the countof speckles in the category “White-Speckles-Found”, and the previouscategories “Black-Speckles-Found” and “Corrupted-Ghost-Speckles-Found,”a final probability of specklemark detection can be made (837).

As before, testing for each expected speckle, black, white, or ghost, isa statistical event, and finding an expected speckle of the correctcolor, black or white, is a true event. Finding an expected speckle ofthe incorrect color is a false event. These statistical events of thewhite detection process add to those of the black detection process andtogether are used to form the joint probability of specklemarkdetection, as illustrated below.

If the detection methods described above are applied to each page of aseveral-page document, the accumulated number of expected and detectedblack and white speckles and the expected lack of detected ghostspeckles relative to their expected sums for the several pages furtherstrengthen the statistic of detection, even if malicious attempts havebeen made to remove some, but not all, of the black and white speckleswith White-Out® and black ink.

Determining the Probability of Specklemark Detection

Determining the probability of specklemark detection in a suspect imageis based on the joint probabilities of detecting individual embeddedspeckles of types black, white and ghost. The most reliable speckles, interms of their relative immunity to malicious tampering, are ghostspeckles. In the preferred embodiment through careful construction,ghost speckles are assured of having several desirable properties thatenhance their use in determining the probability of specklemarkdetection. These desirable properties are: 1) each ghost speckle isplaced in an unpredictably random position within the page image, andthere are no discernable clues as to that position; 2) each ghostspeckle does not overlay text, either totally or partially; 3) eachghost speckle is assured of being at least a first specified distance inevery direction from text; and 4) all ghost speckles are assured ofbeing at least a second specified distance in any direction from eachother and from any black speckle.

Corruption of a ghost speckle in a re-digitized suspect page image canbe caused only by a small number of unlikely events. Such events are: 1)a malfunction of the printer that caused a splotch to be printed on topof a ghost speckle, 2) a visible defect in the paper on which the pageimage was printed at the location of a ghost speckle, 3) a significantmisalignment of the suspect page image with respect to the page imagecausing misaligned text to encroach on a ghost speckle, or 4) by theblunder of selecting the wrong corresponding page image.

Given the above characteristics and properties of ghost speckles, thepreferred embodiment employs the reasonable and conservative estimate ofthe probability of detection a corrupted ghost speckle, p_(U), to ben/N, where N is the number of ghost speckles embedded and n is thenumber of corrupted ghost speckles found. Further, maximum and minimumlimits are placed on p_(U) such that p_(U)=min{max(1/N,n/N),[N−1]/N}.

The preferred embodiment further presumes that the probabilitydistribution for detection of a corrupted ghost speckle is a binomialdistribution. Hence, the expected mean, m, is m=p_(U)×N; the variance,v, of the distribution is v=N×p_(U)[1−p_(U)]; and the standarddeviation, σ, is σ=√{square root over (v)}.

For the purposes of speckle detection in the preferred embodiment, thestatistics governing the detection of speckles on an unspeckled page arepresumed to be the same as the statistics of ghost speckles, asdescribed above. A specklemark detection is determined to occur when thesum of black and white speckles detected, S_(B&W), is equal to orgreater than the mean plus ten standard deviations, or S_(B&W)≧10σ+m.

Three example scenarios will be given.

Scenario #1: An initial 100 candidate speckles are specified. Aftermutual proximity eliminations, the reduced number of speckles is 90, andafter text collision eliminations the remaining number of speckles is80. The number of ghost speckles would therefore be 40 and the number ofblack speckles embedded would be the remaining 40. If no corrupted ghostspeckles were detected in a suspect page image, the number of black andwhite speckles detected in that same page image would need to be atleast 11 for a “specklemark found” declaration. [In this example,p_(U)=1/40=0.025; m=40×0.025=1; v=0.025×40×0.975=0.975; σ=0.987; and thenumber of detected black and white speckles needed to declare adetection is S_(B&W)≧10×0.987+1=10.87].

Scenario #2: Scenario #2 is identical to Scenario #1 except that a bogusentirely black suspect page is used. The bogus suspect page image causesall 40 ghost speckles to be corrupted, all 40 black speckles to bedetected, and no white speckles to be detected. However, the number ofblack and white speckles detected would need to be at least 49 for aspecklemark detection to be declared. Since only 40 black speckles wereembedded, and since no additional white speckles can be detected, adeclaration of “specklemark not found” is made for the bogus suspectpage. [In this example, p_(U)=39/40=0.975; m=40×0.975=39;v=0.975×40×0.025=0.975; σ=0.987; and the number of detected blackspeckles needed to declare a detection is S_(B&W)≧10×0.987+39=48.87]

Scenario #3: Scenario #3 is identical to Scenario #1 except that,because of sabotage, only 6 of 40 black speckles remain and aredetected. Since at least 11 black speckles are required for adeclaration of “specklemark found,” the declaration can not be made.However, if a second page from the same suspect document is available, asecond suspect page image can be used to improve the chances ofspecklemark detection for the two-page suspect document as a whole. Ifan additional 5 black speckles are found in the second suspect pageimage for a total of 11 from the two suspect page images, the valuesfrom the two page images can be combined to meet a detection thresholdof 11, and a declaration of “specklemark found” can be made for thetwo-page document as a whole. [In this example, using the combinedvalues from the two suspect pages, p_(U)=1/80=0.0125; m=80×0.0125=1;v=0.0125×80×0.9875=0.9875; σ=0.9937; and the number of detected blackand white speckles needed to declare a detection isS_(B&W)≧10×0.9937+1=10.937].

Computerized Implementation

Referring now to FIG. 9 a more specific computerized implementation ofthe present invention will be shown and described. In FIG. 9, computersystem 900 is provided in a computer infrastructure 902. Computer system900 is intended to represent any type of computer system capable ofcarrying out the teachings of the present invention. For example,computer system 900 can be a laptop computer, a desktop computer, aworkstation, a handheld device, a server, a cluster of computers, etc.In addition, as will be further described below, computer system 900 canbe deployed and/or operated by a service provider that provides aservice for displaying images of conference call participants inaccordance with the present invention. It should be appreciated that auser 904 can access computer system 900 directly, or can operate acomputer system that communicates with computer system 900 over anetwork 906 (e.g., the Internet, a wide area network (WAN), a local areanetwork (LAN), a virtual private network (VPN), etc). In the case of thelatter, communications between computer system 900 and a user-operatedcomputer system can occur via any combination of various types ofcommunications links. For example, the communication links can compriseaddressable connections that can utilize any combination of wired and/orwireless transmission methods. Where communications occur via theInternet, connectivity can be provided by conventional TCP/IPsockets-based protocol, and an Internet service provider can be used toestablish connectivity to the Internet.

Computer system 900 is shown including a processing unit 908, a memory910, a bus 912, and input/output (I/O) interfaces 914. Further, computersystem 900 is shown in communication with external devices/resources 916and one or more storage systems 918. In general, processing unit 908executes computer program code, marking system 928, that is stored inmemory 910 and/or storage system(s) 918. While executing computerprogram code, processing unit 908 can read and/or write data, to/frommemory 910, storage system(s) 918, and/or I/O interfaces 914. Bus 912provides a communication link between each of the components in computersystem 900. External devices/resources 916 can comprise any devices(e.g., keyboard, pointing device, display (e.g., display 920, printer,etc.) that enable the user 104 to interact with computer system 900and/or any devices (e.g., network card, modem, etc.) that enablecomputer system 900 to communicate with one or more other computingdevices.

Computer infrastructure 902 is only illustrative of various types ofcomputer infrastructures that can be used to implement the presentinvention. For example, in one embodiment, computer infrastructure 902can comprise two or more computing devices (e.g., a server cluster) thatcommunicate over a network (e.g., network 906) to perform the variousprocess steps of the invention. Moreover, computer system 900 is onlyrepresentative of the many types of computer systems that can be used inthe practice of the present invention, each of which can includenumerous combinations of hardware/software. For example, processing unit908 can comprise a single processing unit, or can be distributed acrossone or more processing units in one or more locations, e.g., on a clientand server. Similarly, memory 910 and/or storage system(s) 918 cancomprise any combination of various types of data storage and/ortransmission media that reside at one or more physical locations.Further, I/O interfaces 914 can comprise any system for exchanginginformation with one or more external devices/resources 916. Stillfurther, it is understood that one or more additional components (e.g.,system software, communication systems, cache memory, etc.) not shown inFIG. 9 can be included in computer system 900. However, if computersystem 900 comprises a handheld device or the like, it is understoodthat one or more external devices/resources 916 (e.g., display 920)and/or one or more storage system(s) 918 can be contained withincomputer system 900, and not externally as shown.

Storage system(s) 918 can be any type of system (e.g., a database)capable of providing storage for information under the presentinvention. Such information can include, for example, documents,digitized images, information, speckle data, etc., etc. To this extent,storage system(s) 918 can include one or more storage devices, such as amagnetic disk drive or an optical disk drive. In another embodiment,storage system(s) 118 can include data distributed across, for example,a local area network (LAN), wide area network (WAN) or a storage areanetwork (SAN) (not shown). Moreover, although not shown, computersystems operated by user 904 can contain computerized components similarto those described above with regard to computer system 900.

Shown in memory 910 (e.g., as a computer program product) is markingsystem 928 in accordance with the present invention. In general, markingsystem performs the steps of the present invention as discussed above.Specifically, as shown, marking system 928 includes initial informationembedding system 930, which itself includes image system 932, positioncomputation system 934, and speckle embedding system 936. In addition,marking system 928 includes detection system 940, which includes suspectpage image system 944, position re-computation system 944, alignmentsystem 946, determination system 948, and speckle computation system950. It should be understood that the functions of these systems couldbe provided in a different configuration/quantity of systems. They havebeen shown as such in FIG. 9 for illustrative purposes only.

In any event, initial information embedding system 928 will embedinformation into an original document and subsequently determining thepresence of the embedded information in a copy of the original document.To this extent, image system 932 will provide a digitized image havingat least one image plane. In a typical embodiment, the at least oneimage plane being represented by an image array having brightness datafor a plurality of pixels, each of said pixels having at least one colorcomponent and a pixel position. Once the digitized image is provided,position computation system 934 will compute a first set of candidatepositions for embedding speckles into the digitized image based oninformation to be embedded, and then compute a second set of candidatepositions for embedding ghost speckles into the digitized image based onthe information to be embedded. Thereafter, speckle embedding system 936will embed the speckles into the digitized image to create a compositeimage.

As an extension of the present invention, other information can beembedded into at least one page of a document copy, and then it can besubsequently detecting whether said other information had been embeddedinto at least one page of a suspect document copy. To embed otherinformation position computation system 934 will compute a third set ofcandidate positions for embedding white speckles into the page imagebased on said information to be embedded. Then, speckle embedding system936 will embed white speckles into the page image at positions wherethey are predominantly or totally within the edges of the page image'stext.

The detection of information in a suspect page of a document copy isaccomplished via detection system 940 as follows. First suspect pageimage system 942 will provide a digitized suspect page image having atleast one image plane, each said image plane being represented by animage array having brightness data for a plurality of pixels, each ofsaid pixels having at least one color component and having a pixelposition. Position re-computation system 944 will then recompute thefirst set of candidate positions for embedding speckles into the pageimage based on said information to be embedded, and recompute the secondset of candidate positions for embedding ghost speckles into the pageimage based on said information to be embedded. After the recomputing,alignment system 946 will geometrically align said suspect page imagewith the page image.

Once the alignment is complete, determination system 948 will determineat each black speckle position whether the suspect page image had anearby black speckle, and speckle computation system 950 will computethe number of black speckle positions for which that suspect page imagehad a black speckle nearby. Similarly determination system 948 willdetermine at each ghost speckle position whether the suspect page imagehad a nearby black speckle, and speckle computation system 950 willcompute the number of ghost speckle positions for which that suspectpage image had a black speckle nearby.

As an extension of these steps, position re-computing system 944 canrecompute the third set of candidate positions for embedding whitespeckles into the page image based on said information to be embedded,determination system can determine at each white speckle positionwhether the suspect page image had a nearby white speckle; positioncomputation system 934 can compute the number of white speckle positionsfor which that suspect page image had a white speckle nearby; anddetermination system can determine whether the suspect printed pagepossessed said other information to be embedded based on: the number ofwhite speckle positions, and the number of white speckle positions forwhich the suspect page had a nearby white speckle.

Still yet, determination system 948 can determining whether the suspectprinted page possessed said information to be embedded. It willtypically accomplish this based on: the number of black specklepositions, the number of black speckle positions for which the suspectpage had a nearby black speckle, the number of ghost-speckle positions,and the number of ghost-speckle positions for which the suspect page hada nearby black speckle.

The present invention can be offered as a business method on asubscription or fee basis. For example, one or more components of thepresent invention can be created, maintained, supported, and/or deployedby a service provider that offers the functions described herein forcustomers. That is, a service provider can be used to provide a servicefor displaying images of conference call participants, as describedabove.

It should also be understood that the present invention can be realizedin hardware, software, a propagated signal, or any combination thereof.Any kind of computer/server system(s)—or other apparatus adapted forcarrying out the methods described herein—is suitable. A typicalcombination of hardware and software can include a general purposecomputer system with a computer program that, when loaded and executed,carries out the respective methods described herein. Alternatively, aspecific use computer, containing specialized hardware for carrying outone or more of the functional tasks of the invention, can be utilized.The present invention can also be embedded in a computer program productor a propagated signal, which comprises all the respective featuresenabling the implementation of the methods described herein, andwhich—when loaded in a computer system—is able to carry out thesemethods.

The invention can take the form of an entirely hardware embodiment, anentirely software embodiment, or an embodiment containing both hardwareand software elements. In a preferred embodiment, the invention isimplemented in software, which includes but is not limited to firmware,resident software, microcode, etc.

The present invention can take the form of a computer program productaccessible from a computer-usable or computer-readable medium providingprogram code for use by or in connection with a computer or anyinstruction execution system. For the purposes of this description, acomputer-usable or computer-readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device), or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid state memory, magnetic tape, removable computerdiskette, random access memory (RAM), read-only memory (ROM), rigidmagnetic disk and optical disk. Current examples of optical disksinclude a compact disk—read only disk (CD-ROM), a compactdisk—read/write disk (CD-R/W), and a digital versatile disk (DVD).

Computer program, propagated signal, software program, program, orsoftware, in the present context mean any expression, in any language,code or notation, of a set of instructions intended to cause a systemhaving an information processing capability to perform a particularfunction either directly or after either or both of the following: (a)conversion to another language, code or notation; and/or (b)reproduction in a different material form.

The foregoing description of the preferred embodiments of this inventionhas been presented for purposes of illustration and description. It isnot intended to be exhaustive or to limit the invention to the preciseform disclosed, and obviously, many modifications and variations arepossible. Such modifications and variations that may be apparent to aperson skilled in the art are intended to be included within the scopeof this invention as defined by the accompanying claims.

1. A method of enhancing document security and detecting fraud,comprising: embedding information into an original document andsubsequently determining the presence of the embedded information in acopy of the original document, the embedding step including: providing adigitized image having at least one image plane, the at least one imageplane being represented by an image array having brightness data for aplurality of pixels, each of said pixels having at least one colorcomponent and a pixel position; computing a first set of candidatepositions for embedding speckles into the digitized image based oninformation to be embedded; computing a second set of candidatepositions for embedding ghost speckles into the digitized image based onthe information to be embedded; and embedding the speckles into thedigitized image to create a composite image.
 2. A method comprising:embedding information into at least one page of a document copy andsubsequently detecting whether said information had been embedded intoat least one page of a suspect document copy, said document copy beingin a rasterized format, herein called a digitized page image, saidinformation being embedded through steps of: providing the digitizedpage image having at least one image plane, each said image plane beingrepresented by an image array having brightness data for a plurality ofpixels, each of said pixels having at least one color component andhaving a pixel position; computing a first set of candidate positionsfor embedding black speckles into the page image based on saidinformation to be embedded; computing a second set of candidatepositions for embedding ghost speckles into the page image based on saidinformation to be embedded; and embedding black speckles into the pageimage at positions where they are not near the edges of the page image'stext.
 3. The method of claim 2, said other information being embeddedinto said at least one page of a document copy and subsequentlydetecting whether said other information had been embedded into at leastone page of a suspect document copy, said other information beingembedded through steps of: computing a third set of candidate positionsfor embedding white speckles into the page image based on saidinformation to be embedded; and embedding white speckles into the pageimage at positions where they are predominantly or totally within theedges of the page image's text.
 4. The method of claim 3, a printed copyof said suspect document copy being converted into a rasterized formatby scanning said printed copy forming a digitized suspect page image. 5.The method of claim 2, the subsequent detection of said information in asuspect page of a document copy being accomplished through steps of:providing a digitized suspect page image having at least one imageplane, each said image plane being represented by an image array havingbrightness data for a plurality of pixels, each of said pixels having atleast one color component and having a pixel position; recomputing thefirst set of candidate positions for embedding speckles into the pageimage based on said information to be embedded; recomputing the secondset of candidate positions for embedding ghost speckles into the pageimage based on said information to be embedded; geometrically aligningsaid suspect page image with the page image; determining at each blackspeckle position whether the suspect page image had a nearby blackspeckle; computing the number of black speckle positions for which thatsuspect page image had a black speckle nearby; determining at each ghostspeckle position whether the suspect page image had a nearby blackspeckle; computing the number of ghost speckle positions for which thatsuspect page image had a black speckle nearby; and determining whetherthe suspect printed page possessed said information to be embedded. 6.The method of claim 5, the determining whether the suspect printed pagepossessed said information to be embedded being based on the number ofblack speckle positions, the number of black speckle positions for whichthe suspect page had a nearby black speckle, the number of ghost-specklepositions, and the number of ghost-speckle positions for which thesuspect page had a nearby black speckle.
 7. The method of claim 5, thesubsequent detection of said other information in a suspect page of adocument copy being accomplished through the additional steps of:recomputing the third set of candidate positions for embedding whitespeckles into the page image based on said information to be embedded;determining at each white speckle position whether the suspect pageimage had a nearby white speckle; computing the number of white specklepositions for which that suspect page image had a white speckle nearby;and determining whether the suspect printed page possessed said otherinformation to be embedded based on: the number of white specklepositions, and the number of white speckle positions for which thesuspect page had a nearby white speckle.
 8. A system for enhancingdocument security and detecting fraud, comprising: a system forembedding information into an original document and subsequentlydetermining the presence of the embedded information in a copy of theoriginal document; a system for computing a first set of candidatepositions for embedding speckles into a digitized image based oninformation to be embedded, and for computing a second set of candidatepositions for embedding ghost speckles into the digitized image based onthe information to be embedded, the digitized image having at least oneimage plane, the at least one image plane being represented by an imagearray having brightness data for a plurality of pixels, each of saidpixels having at least one color component and a pixel position; and asystem for embedding the speckles into the digitized image to create acomposite image.
 9. The system of claim 8, further comprising: a systemfor recomputing the first set of candidate positions for embeddingspeckles into the page image based on said information to be embedded,and for recomputing the second set of candidate positions for embeddingghost speckles into the page image based on said information to beembedded; a system for geometrically aligning said suspect page imagewith the page image; a system for determining at each black speckleposition whether the suspect page image had a nearby black speckle; asystem for computing the number of black speckle positions for whichthat suspect page image had a black speckle nearby; a system fordetermining at each ghost speckle position whether the suspect pageimage had a nearby black speckle; a system for computing the number ofghost speckle positions for which that suspect page image had a blackspeckle nearby; and a system for determining whether the suspect printedpage possessed said information to be embedded.
 10. The system of claim8, the system for determining whether the suspected printed pagepossessed said information to be embedded making the determination basedon the number of black speckle positions, the number of black specklepositions for which the suspect page had a nearby black speckle, thenumber of ghost-speckle positions, and the number of ghost-specklepositions for which the suspect page had a nearby black speckle.
 11. Thesystem of claim 8, the subsequent detection of said other information ina suspect page of a document copy being accomplished through theadditional systems of: a system for recomputing a third set of candidatepositions for embedding white speckles into the page image based on saidinformation to be embedded; a system for determining at each whitespeckle position whether the suspect page image had a nearby whitespeckle; a system for computing the number of white speckle positionsfor which that suspect page image had a white speckle nearby; and asystem for determining whether the suspect printed page possessed saidother information to be embedded based on: the number of white specklepositions, and the number of white speckle positions for which thesuspect page had a nearby white speckle.
 12. A program product stored ona computer useable medium for enhancing document security and detectingfraud, the computer useable medium comprising program code for causing acomputer system to perform the following steps: embedding informationinto an original document and subsequently determining the presence ofthe embedded information in a copy of the original document; computing afirst set of candidate positions for embedding speckles into a digitizedimage based on information to be embedded, and for computing a secondset of candidate positions for embedding ghost speckles into thedigitized image based on the information to be embedded, the digitizedimage having at least one image plane, the at least one image planebeing represented by an image array having brightness data for aplurality of pixels, each of said pixels having at least one colorcomponent and a pixel position; and embedding the speckles into thedigitized image to create a composite image.
 13. The program product ofclaim 12, the computer useable medium further comprising program code tocause the computer system to perform the following additional steps:recomputing the first set of candidate positions for embedding specklesinto the page image based on said information to be embedded, and forrecomputing the second set of candidate positions for embedding ghostspeckles into the page image based on said information to be embedded;geometrically aligning said suspect page image with the page image;determining at each black speckle position whether the suspect pageimage had a nearby black speckle; computing the number of black specklepositions for which that suspect page image had a black speckle nearby;determining at each ghost speckle position whether the suspect pageimage had a nearby black speckle; computing the number of ghost specklepositions for which that suspect page image had a black speckle nearby;and a system for determining whether the suspect printed page possessedsaid information to be embedded.
 14. The program product of claim 13,the determination of whether the suspected printed page possessed saidinformation to be embedded being based on the number of black specklepositions, the number of black speckle positions for which the suspectpage had a nearby black speckle, the number of ghost-speckle positions,and the number of ghost-speckle positions for which the suspect page hada nearby black speckle.